import request from '@/utils/request.js'
import axios from 'axios'
import store from '@/store' // store===this.$store
// 定义一个登陆
// 在调用同一接口请求多次请求时,取消之前的请求
// axios取消事件处理
/*

1:取消同一接口请求
2:路由跳转时取消所有接口请求  a页面 ===> b页面
cancelToken是axios的一个配制项,它后面跟的是一个实例对象
cancelToken:new axios.CancelToken((cancelFn)=>{
  cancelFn:当前接口的取消方法
})
*/
let _fn = ''
// sysLogin()  _fn=1的取消方法
// sysLogin()    _fn()    _fn=2的取消方法
export function sysLogin (data) {
  try {
    _fn()
  } catch {}
  return request({
    url: '/sys/login',
    method: 'post',
    data,
    cancelToken: new axios.CancelToken(cancelFn => {
      // cancelFn: 就是取消该登陆请求的方法, 它要该方法执行, 就会中止当前接口的请求
      _fn = cancelFn
    })
  })
}
export function test () {
  return request({
    url: '/captcha?type=login'
  })
}
// 获取用户信息api

export function sysProfile () {
  return request({
    url: '/sys/profile',
    method: 'post',
    useToken: true
    // headers: {
    //   Authorization: `Bearer ${store.state.user.token}`
    // }
  })
}
// 获取员工基本信息
export function sysUser (id) {
  return request({
    url: `/sys/user/${id}`,
    useToken: true
    // headers: {
    //   Authorization: `Bearer ${store.state.user.token}`
    // }
  })
}
